package moodle.dados;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.*;

import dao.MoodleDAO;

import moodle.dados.atividades.AtividadeNota;
import moodle.dados.atividades.AtividadeParticipacao;
import moodle.dados.atividades.FerramentaExterna;
import moodle.dados.atividades.Tarefa;

@Entity
@Table(name = "mdl_course")
public class Curso {

	@Id
	private BigInteger id;	
	private String fullname;
	
	@Transient
	private Set<Aluno> alunos;
	@Transient
	private Set<AtividadeNota> atividadesNota;
	@Transient
	private Set<AtividadeParticipacao> atividadesParticipacao;
	
	@Transient
	private BigInteger itemid;
		
	
	public Curso(){
		alunos = new HashSet<Aluno>();
		atividadesNota = new HashSet<AtividadeNota>();
		atividadesParticipacao = new HashSet<AtividadeParticipacao>();
	}
	
	
	public BigInteger getId() {
		return id;
	}
	
	public String getFullName() {
		return fullname;
	}
	
	public Set<Aluno> getAlunos(){
		return alunos;
	}
	
	public void addAluno(Aluno aluno){
		alunos.add(aluno);
	}
	
	public void setItemid(BigInteger itemid){
		this.itemid = itemid;
	}
	
	public BigInteger getItemid(){
		return itemid;
	}
	
	public void addAtividadeNota(AtividadeNota atividade){
		atividadesNota.add(atividade);
	}
	
	public void addAtividadeNota(List<? extends AtividadeNota> atividades){
		atividadesNota.addAll(atividades);
	}
	
	
	public void addAtividadeParticipacao(AtividadeParticipacao atividade){
		atividadesParticipacao.add(atividade);
	}
	
	public void addAtividadeParticipacao(List<? extends AtividadeParticipacao> atividades){
		atividadesParticipacao.addAll(atividades);
	}

	public Set<AtividadeNota> getAtividadesNota() {
		return atividadesNota;
	}
	
	public Set<AtividadeParticipacao> getAtividadesParticipacao() {
		return atividadesParticipacao;
	}
	
	public Set<Atividade> getAllAtividades(){
		Set<Atividade> all =  new HashSet<Atividade>();
	
		all.addAll(atividadesParticipacao);
		all.addAll(atividadesNota);
		
		return all;
	}
	
	
	
	
	
	
}